{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "300\n",
      "300\n"
     ]
    },
    {
     "data": {
      "image/png": "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xgdPKmVSTR2kG2D76rEOxTk3Dpx55pn87Gc/o7s7eZDo6tWrWbduHSeddBLt7e0sXryYhQsX8qIXvYif/OQn+7SNZ555hsWLF3PcccexePFinn32WQB+8IMfcOyxxzJ//nxe+cpXAvDoo49ywgknsGDBAo477jiefPLJ0dnREfJTissVxZhF0LEVzMA7CJ0bNz7100d5bN2uUV3n0TMm8ck3HjPo9GnTpnHCCSfwi1/8gjPOOINly5bx9re/HUnU1tZy2223MWnSJLZs2cKJJ57Im970phF3gl9yySWcf/75XHDBBSxdupRLL72UH//4x1x11VUsX76cmTNnsmPHDgCuu+463v/+93POOefQ09NDLjfck7wrw2sqZVIcAxFku6Bn91iH45wbB4qbwIqbvsyMj370oxx33HGceuqprF27lo0bN454/ffccw9nn302AOeddx6///3vAXj5y1/OhRdeyDe+8Y2+5PGyl72Mz33uc3z+85/nmWeeoa6ubjR2ccS8plKuOMYs/Mro2AI1B0enmnMHg6FqFJX05je/mcsuu4wHH3yQzs5OFi5cCMDNN9/M5s2beeCBB0in08yePXtUrvwv1HSuu+467r33Xn7+85+zYMECVq5cydlnn81LX/pSfv7zn/O6172Ob37zm5xyyin7vc2R8ppKmZKaSkgqu7eOaSzOufGhsbGRk08+mXe+8539Ouh37tzJIYccQjqd5u677+aZZ8q6a/xe/uZv/qavJnTzzTdz0kknAfDUU0/x0pe+lKuuuorp06ezZs0ann76aebOncull17Km970Jh566KH938F94DWVcsURlg/DHVvGNBTn3PixZMkS3vrWt/Y7E+ycc87hjW98I4sWLWLBggW84AUvGHY9HR0dzJo1q2/8sssu49prr+Wd73wn11xzDS0tLdx4440AfPjDH+bJJ5/EzFi8eDHz58/n6quv5jvf+Q7pdJrDDjuMT3ziE6O/s2XwpFImxSnMwshuTyrOucRb3vIWrO/LITF9+nTuueeekvO3t7eXLM/n8yXLf/3rX+9V9qMf/WivsiuuuIIrrrhiuHArrmLNX5KWStok6ZGisu9JWhleqyWtDOWzJXUWTbuuaJnjJT0saZWkaxUaFSVNlXSXpCfD+5RK7QsAcQT58IfjNRXnnCupkn0q3wJOKy4ws7eb2QIzWwDcChSn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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fd7b7cbc2b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import matplotlib\n",
    "\n",
    "\n",
    "def plot_loss(file_name):\n",
    "    train_loss = []   # This is actually psnr\n",
    "    val_loss = []     # This is actually loss\n",
    "    counter = 0\n",
    "    with open(file_name) as txtfile:\n",
    "         for row in txtfile:\n",
    "            curt_row = row.split(' ')\n",
    "            if counter >= 0:\n",
    "                if len(curt_row) >= 4 : \n",
    "                    if curt_row[3] == 'Train' :\n",
    "#                         print(curt_row[-1])\n",
    "                        train_loss.append(float(curt_row[-1][:-2]))\n",
    "                    if curt_row[3] == 'Eval':\n",
    "#                         print(curt_row[-1])\n",
    "                        val_loss.append(float(curt_row[-1][:-2]))\n",
    "            counter = counter + 1\n",
    "                    \n",
    "    print(len(train_loss))\n",
    "    train_loss = train_loss[:]\n",
    "    val_loss = val_loss[:]\n",
    "    plt.plot(val_loss)\n",
    "    plt.plot(train_loss)\n",
    "\n",
    "\n",
    "\n",
    "log1 = 'train.log'\n",
    "log2 = 'old/train.log'\n",
    "\n",
    "plot_loss(log1)\n",
    "# plot_loss(log2)\n",
    "\n",
    "plt.legend(['Val Loss','Train Loss'])\n",
    "plt.xlabel('Number of epochs')\n",
    "plt.ylabel('Loss(MSE)')\n",
    "plt.title('SRCNN Avg Loss vs Num of Epochs')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
